package com.example.demo.Service;

import com.example.demo.Entity.Admin;
import com.example.demo.Entity.Customer;
import com.example.demo.Entity.Order;
import com.example.demo.Param.CustomerUpdateParam;
import com.example.demo.Param.OrderInsertParam;
import com.example.demo.Param.UserInsertParam;
import com.example.demo.Param.UserUpdateParam;

import java.util.List;

public interface UserService {
    /**
     * 客户注册
     *
     * @param userName
     * @param telphone
     * @param password
     * @return
     */
    String registerC(String userName, String telphone, String password);

    /**
     * 系统用户注册
     *
     * @param userName
     * @param telphone
     * @param password
     * @return
     */
    String registerA(String userName, String telphone, String password);


    /**
     * 客户登录
     *
     * @param telphone
     * @param passwordMD5
     * @return
     */
    String loginC(String telphone, String passwordMD5);

    /**
     * 系统用户登录
     *
     * @param userName
     * @param password
     * @return
     */
    Admin loginA(String userName, String password);

    /**
     * 系统用户信息修改
     *
     * @param user
     * @param userId
     * @return
     */
    Boolean updateAdminInfo(UserUpdateParam user, Long userId);

    /**
     * 客户信息修改
     *
     * @param user
     * @return
     */
    Boolean updateCustomerInfo(UserUpdateParam user);

    /**
     * 系统用户登出接口
     * @param userId
     * @return
     */
    Boolean logoutA(Long userId);

    /**
     * 客户登出接口
     * @param userId
     * @return
     */
    Boolean logoutC(Long userId);

    /**
     * 获取客户信息接口
     * @param usertel
     * @return
     */
    Customer getCDetail(String usertel);


    /**
     * 获取全部客户信息接口
     * @return
     */
    public List<Customer> getAll();



    /**
     * 删除客户信息接口
     * @return
     */
    public void deleteCustomer(Long id);


    /**
     * 添加客户接口
     * @return
     */
    public Customer createOne(UserInsertParam userInsertParam);


    /**
     * 更新客户接口
     * @return
     */
    public void updateCustomer(CustomerUpdateParam customerUpdateParam);


    /**
     * 获取客户信息
     * @return
     */
    public Customer findCustomerById(Long id);


    /**
     * 按照姓名查询客户信息
     * @return
     */
    public List<Customer> searchCustomer(String customername);

}
